{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from sklearn.datasets import make_blobs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "x, y = make_blobs(n_samples=500, n_features=2, centers=4, random_state=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(500, 2)"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "color = [\"red\",\"pink\",\"orange\",\"gray\"]\n",
    "fig, ax1 = plt.subplots(1)\n",
    "for i in range(4):\n",
    "    ax1.scatter(x[y==i, 0], x[y==i, 1]\n",
    "                ,marker='o' #点的形状\n",
    "                ,s=8 #点的大小\n",
    "                ,c=color[i]\n",
    "                )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.cluster import KMeans"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_clusters = 3\n",
    "cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 2, 0, 1, 0, 1, 0, 0, 0, 0, 2, 2, 0, 1, 0, 2, 0, 2, 1, 0, 0, 0,\n",
       "       0, 1, 0, 0, 1, 1, 0, 0, 2, 1, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 1, 0,\n",
       "       0, 2, 0, 0, 1, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0,\n",
       "       2, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1,\n",
       "       0, 0, 1, 2, 0, 0, 1, 2, 2, 0, 2, 1, 1, 2, 1, 0, 1, 0, 0, 1, 1, 0,\n",
       "       0, 2, 1, 0, 1, 0, 1, 0, 1, 0, 0, 2, 2, 0, 0, 0, 1, 2, 2, 0, 1, 0,\n",
       "       0, 0, 0, 2, 1, 0, 1, 1, 0, 2, 0, 1, 1, 1, 0, 0, 2, 2, 0, 0, 1, 2,\n",
       "       1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 0, 1, 2, 0, 0, 2, 1, 0,\n",
       "       0, 0, 0, 2, 0, 0, 1, 2, 2, 0, 0, 2, 2, 0, 1, 1, 2, 2, 0, 1, 0, 2,\n",
       "       2, 1, 2, 0, 1, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 1,\n",
       "       0, 2, 0, 0, 0, 0, 0, 1, 0, 1, 2, 0, 2, 0, 1, 1, 0, 2, 1, 2, 0, 0,\n",
       "       2, 2, 2, 2, 0, 0, 2, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0,\n",
       "       1, 0, 2, 2, 0, 0, 0, 0, 1, 1, 0, 1, 0, 2, 1, 2, 1, 2, 2, 1, 2, 1,\n",
       "       1, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 2, 0, 0, 0, 2, 0, 2, 2, 0, 2,\n",
       "       2, 0, 1, 2, 0, 0, 1, 1, 0, 2, 1, 1, 0, 2, 1, 1, 0, 0, 1, 0, 0, 2,\n",
       "       2, 1, 0, 2, 0, 1, 1, 0, 0, 0, 2, 0, 1, 1, 0, 1, 1, 1, 1, 2, 2, 0,\n",
       "       1, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 2, 1, 2, 2, 2, 2, 2,\n",
       "       2, 0, 2, 1, 2, 1, 1, 0, 1, 0, 0, 0, 2, 1, 0, 1, 0, 2, 0, 0, 2, 0,\n",
       "       0, 1, 1, 2, 0, 0, 1, 0, 0, 2, 2, 0, 2, 0, 0, 2, 0, 2, 0, 1, 2, 1,\n",
       "       0, 0, 1, 0, 0, 1, 2, 0, 1, 1, 0, 0, 0, 0, 2, 1, 2, 0, 1, 2, 2, 2,\n",
       "       0, 1, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 1, 0,\n",
       "       1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 2, 0, 1, 0, 2, 1, 2, 1, 2, 0, 1, 1,\n",
       "       2, 0, 0, 2, 0, 0, 0, 2, 0, 1, 0, 0, 2, 2, 2, 0], dtype=int32)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred = cluster.labels_\n",
    "y_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "color = [\"red\",\"pink\",\"orange\"]\n",
    "fig, ax1 = plt.subplots(1)\n",
    "for i in range(3):\n",
    "    ax1.scatter(x[y_pred==i, 0], x[y_pred==i, 1]\n",
    "                ,marker='o' #点的形状\n",
    "                ,s=8 #点的大小\n",
    "                ,c=color[i]\n",
    "                )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-8.09286791, -3.50997357],\n",
       "       [-1.54234022,  4.43517599],\n",
       "       [-7.0877462 , -8.08923534]])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "centroid = cluster.cluster_centers_\n",
    "centroid"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1903.5342237665059"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "inertia = cluster.inertia_\n",
    "inertia"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "color = [\"red\",\"pink\",\"orange\"]\n",
    "fig, ax1 = plt.subplots(1)\n",
    "for i in range(3):\n",
    "    ax1.scatter(x[y_pred==i, 0], x[y_pred==i, 1]\n",
    "                ,marker='o' #点的形状\n",
    "                ,s=8 #点的大小\n",
    "                ,c=color[i]\n",
    "                )\n",
    "ax1.scatter(centroid[:,0],centroid[:,1]\n",
    "            ,marker=\"x\"\n",
    "            ,s=15\n",
    "            ,c=\"black\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_result(n, x, y_pred, centroid):\n",
    "    color = [\"red\",\"pink\",\"orange\", \"gray\", \"blue\", \"green\"]\n",
    "    fig, ax1 = plt.subplots(1)\n",
    "    for i in range(n):\n",
    "        ax1.scatter(x[y_pred==i, 0], x[y_pred==i, 1]\n",
    "                    ,marker='o' #点的形状\n",
    "                    ,s=8 #点的大小\n",
    "                    ,c=color[i]\n",
    "                    )\n",
    "    ax1.scatter(centroid[:,0],centroid[:,1]\n",
    "                ,marker=\"x\"\n",
    "                ,s=15\n",
    "                ,c=\"black\")\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_clusters = 4\n",
    "cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(x)\n",
    "y_pred = cluster.labels_\n",
    "centroid = cluster.cluster_centers_\n",
    "plot_result(n_clusters, x, y_pred, centroid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_clusters = 5\n",
    "cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(x)\n",
    "y_pred = cluster.labels_\n",
    "centroid = cluster.cluster_centers_\n",
    "plot_result(n_clusters, x, y_pred, centroid)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_clusters = 6\n",
    "cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(x)\n",
    "y_pred = cluster.labels_\n",
    "centroid = cluster.cluster_centers_\n",
    "plot_result(n_clusters, x, y_pred, centroid)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 聚类评估指标"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 真实标签已知\n",
    "可以采用互信息分，V-meansure，兰德系数进行评价\n",
    "## 真实标签未知\n",
    "### 轮廓系数（评价簇内差异与簇外差异的关系）\n",
    "取值在-1到1之间，越接近1表示簇内越相似"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import silhouette_score\n",
    "from sklearn.metrics import silhouette_samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6505186632729437"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "silhouette_score(x,y_pred)# 分四簇时的结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.62903385,  0.43289576,  0.55834047,  0.82660742,  0.35213124,\n",
       "        0.74123252,  0.68902347,  0.58705868,  0.04062548,  0.73241492,\n",
       "        0.59363669,  0.75135825,  0.66326503,  0.81480193,  0.45066007,\n",
       "        0.59477448,  0.10348453,  0.66633309,  0.84176332,  0.6089521 ,\n",
       "        0.70366952,  0.66565716,  0.59626118,  0.78488729,  0.64257685,\n",
       "        0.53469157,  0.86623858,  0.80913231,  0.62625573,  0.70079616,\n",
       "        0.62490578,  0.83417556,  0.74035924,  0.54405603,  0.71658615,\n",
       "        0.6694404 ,  0.69313134,  0.60546734,  0.58315885,  0.59179481,\n",
       "        0.64472091,  0.56153618,  0.73581549,  0.50944136,  0.66243564,\n",
       "        0.73163465,  0.57031198,  0.68128648,  0.85802959,  0.76946886,\n",
       "        0.81915048,  0.68541025,  0.5406262 ,  0.72334031,  0.63576372,\n",
       "        0.69892782,  0.64245745,  0.40251287,  0.57213237,  0.46118988,\n",
       "        0.83726051,  0.80179027,  0.45393636,  0.54665199,  0.85023055,\n",
       "        0.6688164 ,  0.69778864,  0.69091353,  0.68586222,  0.46727706,\n",
       "        0.64892594,  0.6808235 ,  0.66206932,  0.69871837,  0.71865188,\n",
       "        0.68494268,  0.75328423,  0.58296563,  0.70576812,  0.36389608,\n",
       "        0.82328783,  0.85353139,  0.60606649,  0.83393488,  0.83094159,\n",
       "        0.70382684,  0.0580048 ,  0.80397318,  0.6427548 ,  0.46029756,\n",
       "        0.68630759,  0.57351761,  0.3687021 ,  0.45078314,  0.80977885,\n",
       "        0.72152963,  0.63168005,  0.4945532 ,  0.55911976,  0.73815264,\n",
       "        0.8186652 ,  0.69469544,  0.7494507 ,  0.61042964,  0.82018921,\n",
       "        0.52164637,  0.73875283,  0.86225523,  0.8531162 ,  0.70074535,\n",
       "        0.42283371,  0.75276236,  0.83627727,  0.6615193 ,  0.83388255,\n",
       "        0.69044814,  0.82428157,  0.51512168,  0.83757123,  0.73538753,\n",
       "        0.68751242,  0.52750486,  0.66904087,  0.54954225,  0.47655054,\n",
       "        0.6592929 ,  0.81000835,  0.76006921,  0.69263105,  0.71103186,\n",
       "        0.83918213,  0.60369516,  0.56768711,  0.68326139,  0.61434083,\n",
       "        0.56363829,  0.61532991,  0.56083023,  0.72531043,  0.79883227,\n",
       "        0.66688735,  0.50564715,  0.65158262,  0.85563404,  0.7824113 ,\n",
       "        0.8285419 ,  0.64072343,  0.72620054,  0.49825455,  0.59695559,\n",
       "        0.5583992 ,  0.40186669,  0.78237885,  0.74785868,  0.75884865,\n",
       "        0.70089311,  0.60263048,  0.5615834 ,  0.70118071,  0.67772637,\n",
       "        0.5721739 ,  0.67730468,  0.63416253,  0.63414272,  0.81321733,\n",
       "        0.35221048,  0.73508598,  0.61363209,  0.72700817,  0.86185079,\n",
       "        0.62568743,  0.51861029,  0.70526541,  0.60301291,  0.85886051,\n",
       "        0.43701433,  0.62177867,  0.70450483,  0.55881958,  0.55269651,\n",
       "        0.65422754,  0.59119905,  0.70204441,  0.43934625,  0.72193903,\n",
       "        0.17436228,  0.72671371,  0.74909326,  0.72291783,  0.10079355,\n",
       "        0.77498719,  0.84704808,  0.66126514,  0.31716798,  0.737739  ,\n",
       "        0.81890859,  0.69192282,  0.65706799,  0.73981774,  0.80669213,\n",
       "        0.72526562,  0.57891472,  0.62600877,  0.64771679,  0.67449479,\n",
       "        0.62489594,  0.67181431,  0.45282563,  0.75229552,  0.60640714,\n",
       "        0.60145867,  0.44589657,  0.52509653,  0.73004638,  0.60915283,\n",
       "        0.71425762,  0.67655284,  0.80363485,  0.25131282,  0.80286197,\n",
       "        0.66334249,  0.71475664,  0.62017878,  0.70580234,  0.61180346,\n",
       "        0.69848171,  0.6904932 ,  0.84631405,  0.47873982,  0.79638229,\n",
       "        0.69250151,  0.63388969,  0.67373235,  0.55319783,  0.8598079 ,\n",
       "        0.7524114 ,  0.40235979,  0.72000523,  0.85689279,  0.62338775,\n",
       "        0.73165669,  0.33911487,  0.7328447 ,  0.74837575,  0.73431429,\n",
       "        0.58679954,  0.47468596,  0.54461604,  0.62101494,  0.65614518,\n",
       "        0.59444286,  0.78796304,  0.85923611,  0.68794159,  0.56391242,\n",
       "        0.85800677,  0.60955615,  0.32853507,  0.50398148,  0.86632275,\n",
       "        0.55497237,  0.77195259,  0.56564538,  0.62420175,  0.8594779 ,\n",
       "        0.72669339,  0.68323288,  0.72043564,  0.57474922,  0.65617516,\n",
       "        0.59583965,  0.6138594 ,  0.84967889,  0.8404922 ,  0.52263744,\n",
       "        0.8476908 ,  0.70818495,  0.53064417,  0.86423672,  0.68329404,\n",
       "        0.85954346,  0.71466842,  0.73795813,  0.83653999,  0.67953558,\n",
       "        0.85065563,  0.79143872,  0.24849881,  0.67865396,  0.27823309,\n",
       "        0.44089877,  0.71828573,  0.64490691,  0.09916002,  0.42187352,\n",
       "        0.6579123 ,  0.51837   ,  0.05555848,  0.55040536,  0.6405919 ,\n",
       "        0.40527851,  0.68860035,  0.67263151,  0.62413005,  0.50693326,\n",
       "        0.54230967,  0.5281381 ,  0.67691214,  0.49587889,  0.65614372,\n",
       "        0.83516308,  0.70022476,  0.70731666,  0.72443738,  0.78586427,\n",
       "        0.84667587,  0.4684146 ,  0.73455491,  0.78813618,  0.81321866,\n",
       "        0.73636182,  0.72072073,  0.74169057,  0.85906707,  0.39577884,\n",
       "        0.685937  ,  0.77977067,  0.63966327,  0.71116971,  0.61156042,\n",
       "        0.67546489,  0.85619636,  0.04572313,  0.41590615,  0.42626816,\n",
       "        0.79347261,  0.82670453,  0.60921504,  0.4480074 ,  0.58304871,\n",
       "        0.70971499,  0.63829578,  0.85971201,  0.83865592,  0.66851073,\n",
       "        0.78243579,  0.78068333,  0.68646877,  0.7583609 ,  0.67331687,\n",
       "        0.68292808,  0.70580903,  0.85419785,  0.62474276,  0.68377591,\n",
       "        0.63874743,  0.83845929,  0.68042509,  0.86203062,  0.4899863 ,\n",
       "        0.66998424,  0.69773531,  0.57037883,  0.6731441 ,  0.85306519,\n",
       "        0.52420901,  0.70306922,  0.69297145,  0.86301134,  0.72317246,\n",
       "        0.7560538 ,  0.6013632 ,  0.71200949,  0.6190129 ,  0.63921141,\n",
       "        0.27971801,  0.66412442,  0.85511238,  0.67595374,  0.79024461,\n",
       "        0.86478505,  0.67769563,  0.82143455,  0.5735732 ,  0.66157221,\n",
       "        0.06107484,  0.61251082,  0.83589166, -0.00872469,  0.8358298 ,\n",
       "        0.39555308,  0.73338529,  0.22262977,  0.69102837,  0.74812903,\n",
       "        0.695476  ,  0.1616137 ,  0.78950524,  0.76529602,  0.62206789,\n",
       "        0.68036047,  0.70753407,  0.59163663,  0.60974585,  0.73984024,\n",
       "        0.72891725,  0.74108521,  0.61918538,  0.6040488 ,  0.67313069,\n",
       "        0.55248873,  0.61689676,  0.33436413,  0.7469491 ,  0.47212927,\n",
       "        0.84657869,  0.49205564,  0.72130768,  0.64765233,  0.72948536,\n",
       "        0.81127763,  0.45878499,  0.68662743,  0.79675608,  0.62012949,\n",
       "        0.65702242,  0.78085857,  0.82740752,  0.66575457,  0.68131292,\n",
       "        0.64830126,  0.68370094,  0.63621001,  0.85931393,  0.52551701,\n",
       "        0.70512134,  0.77715108,  0.7407637 ,  0.69560216,  0.72525541,\n",
       "        0.68538114,  0.64809374,  0.11092568,  0.67593127,  0.64186857,\n",
       "        0.68857292,  0.64693932,  0.67706722,  0.71848648,  0.72009522,\n",
       "        0.69970453,  0.54514763,  0.73124452,  0.73376962,  0.54956739,\n",
       "        0.35175708,  0.35863386,  0.69315426,  0.72080858,  0.70551128,\n",
       "        0.85531468,  0.61302534,  0.86434023,  0.73763421,  0.69945544,\n",
       "        0.26344224,  0.84282472,  0.81346215,  0.77988893,  0.457298  ,\n",
       "        0.72758052,  0.56105932,  0.74388245,  0.6030924 ,  0.84373734,\n",
       "        0.70513767,  0.75539602,  0.82314621,  0.40598262,  0.83764827,\n",
       "        0.6764497 ,  0.67806402,  0.85371569,  0.7309908 ,  0.39793802,\n",
       "        0.67976046,  0.50219218,  0.41095767,  0.66098766,  0.49589762,\n",
       "        0.45158542,  0.65473612,  0.70979989,  0.85803255,  0.6090255 ,\n",
       "        0.23094383,  0.73256791,  0.51456386,  0.68960014,  0.68782655])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "silhouette_samples(x,y_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 卡林斯基-哈拉巴斯指数（CHI）\n",
    "越高越好"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Sklearn verion is 0.23.1\n"
     ]
    }
   ],
   "source": [
    "import sklearn\n",
    "print(\"Sklearn verion is {}\".format(sklearn.__version__))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import calinski_harabasz_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2704.4858735121097"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "calinski_harabasz_score(x, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0010919570922851562"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看那CHI计算的时间\n",
    "from time import time\n",
    "t0 = time()\n",
    "calinski_harabasz_score(x, y_pred)\n",
    "time() - t0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'2020-07-28 14:34:13'"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import datetime\n",
    "datetime.datetime.fromtimestamp(t0).strftime(\"%Y-%m-%d %H:%M:%S\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
